﻿using FitnessDiary.Domain.Entities;
using System.Linq;

namespace FitnessDiary.Domain.Abstract
{
	public interface IFitnessDiaryRepository
	{
		IQueryable<Unit> Units { get; }
		IQueryable<HitComponent> HitComponents { get; }
		IQueryable<Hit> Hits { get; }
		IQueryable<Stat> Stats { get; }
		IQueryable<Quantity> Quantities { get; }

		void SaveStat(Stat stat);
		void UpdateStat(Stat stat);
		void DeleteStat(Stat stat);

		void SaveHit(Hit hit);
		void UpdateHit(Hit hit);
		void DeleteHit(Hit hit);

		void UpdateQuantity(Quantity quantity);
		void DeleteQuantity(Quantity quantity);

		void DeleteHitComponent(HitComponent hitComponent);

		void Dispose();

		Stat GetStat(int id);
	}
}
